<?PHP
/*********************************************************************************
 * SugarCRM is a customer relationship management program developed by
 * SugarCRM, Inc. Copyright (C) 2004-2010 SugarCRM Inc.
 * 
 * This program is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License version 3 as published by the
 * Free Software Foundation with the addition of the following permission added
 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU Affero General Public License along with
 * this program; if not, see http://www.gnu.org/licenses or write to the Free
 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301 USA.
 * 
 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
 * 
 * The interactive user interfaces in modified source and object code versions
 * of this program must display Appropriate Legal Notices, as required under
 * Section 5 of the GNU Affero General Public License version 3.
 * 
 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
 * these Appropriate Legal Notices must retain the display of the "Powered by
 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
 * technical reasons, the Appropriate Legal Notices must display the words
 * "Powered by SugarCRM".
 ********************************************************************************/

class edanz_Probation extends Basic {
	var $new_schema = true;
	var $module_dir = 'edanz_Probation';
	var $object_name = 'edanz_Probation';
	var $table_name = 'edanz_probation';
	var $importable = false;
	var $disable_row_level_security = true ; // to ensure that modules created and deployed under CE will continue to function under team security if the instance is upgraded to PRO
	var $id;
	var $name;
	var $date_entered;
	var $date_modified;
	var $modified_user_id;
	var $modified_by_name;
	var $created_by;
	var $created_by_name;
	var $description;
	var $deleted;
	var $created_by_link;
	var $modified_user_link;
	var $assigned_user_id;
	var $assigned_user_name;
	var $assigned_user_link;

	function edanz_Probation(){	
		parent::Basic();
                
                global $moduleAssocFieldsArray;
                $moduleAssocFieldsArray['edanz_Probation'] = array(
                     'related_editor_id' =>
                     array('table_name' => 'users',
                           'select_field_name' => 'concat(first_name,\' \',last_name)',
                           'select_field_join'  => 'id',
                          ),
                );
	}

	function save($check_notify = FALSE){
		global $current_user;
/*		if($this->status == 'Active'){
			require_once('modules/edanz_Editor/edanz_Editor.php');
			$editor = new edanz_Editor();
			$editor->retrieve($this->related_editor_id);
			$active_probations = $editor->get_linked_beans('probation', 'edanz_Probation');
			foreach($active_probations as $probation){
				if($probation->status == 'Active' && $probation->id != $this->id){
					//This should be folded in with the handleRedirect function in TaskCreateTasks
					//header("Location: index.php?module=Tasks&action=Error&error_string=".urlencode($mod_strings['ERR_ACTIVE_PROBATION_FOUND']));
					SugarApplication::redirect("index.php?module=Tasks&action=Error&error_string=".urlencode($mod_strings['ERR_ACTIVE_PROBATION_FOUND']));
					exit;
				}
			}
		}
*/
		if($this->fetched_row['status'] != $this->status){
			$now = gmdate($GLOBALS['timedate']->get_db_date_time_format());
			//$user_id = 1;
			if (!empty($current_user))
			{
				$user_id = $current_user->id;
				$user_name = $current_user->user_name;
			}
			switch ($this->status) {
				case 'Active':
					$this->activated_date = $now;
					$this->activated_by = $user_id;
					$this->activated_by_name = $user_name;
					break;
				case 'Inactive':
					$this->deactivated_date = $now;
					$this->deactivated_by = $user_id;
					$this->deactivated_by_name = $user_name;
					break;
				default:
					break;
			}
		}

		$id = parent::save($check_notify);
		return $id;
	}
/*
        function get_list_view_data(){
                $probation_fields = $this->get_list_view_array();
                $query = "select first_name, last_name, related_editor_id from users, edanz_probation where users.id = edanz_probation.related_editor_id and edanz_probation.id ='".$this->id."'";
                $result = $this->db->query($query);
                if ( $row = $this->db->fetchByAssoc($result) )
                {
                        $probation_fields['RELATED_EDITOR_NAME'] = $row['first_name'].' '.$row['last_name'];
                        $probation_fields['RELATED_EDITOR_ID'] = $row['related_editor_id'];
                }
                return $probation_fields;
        }
*/

	function bean_implements($interface){
		switch($interface){
			case 'ACL': return true;
		}
		return false;
	}
}
?>
